package servlets;

import java.io.IOException;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import javax.servlet.RequestDispatcher;
import javax.servlet.Servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;

import business.Cliente;
import business.Compra;
import business.Produto;
import business.Juridica;
import business.Venda;
import dao.ClienteDao;
import dao.CompraDao;
import dao.JuridicaDao;
import dao.ProdutoDao;
import servlets.ServletProduto;


public class ServletCompra extends HttpServlet implements Servlet {
	CompraDao compradao = new CompraDao();
	JuridicaDao juridicadao = new JuridicaDao();
	ProdutoDao produtodao = new ProdutoDao();
	private static final Logger log = Logger.getLogger( ServletCompra.class );
	
	protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		doPost(request, response);
	}

	protected void doPost(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		

//		log.debug("fui no codCompra -- "+compradao.proximoCodCompra());
		
		
		log.debug("retornei no parametro?" +request.getAttribute("codCompra"));
		
		String comando = request.getParameter("comando");
		
//		ArrayList juridicas = juridicadao.listarJuridicasCompra();
//		request.setAttribute("lista_juridica", juridicas);
		
		
//		ArrayList produtos = produtodao.listarProdutosCompra();
//		request.setAttribute("lista_produto", produtos);
		
		
		if (comando == null) {
			response.sendRedirect("compra.jsp");
		} 
		
		else if (comando.equals("inserir produto"))//insere produto em produto_has_compra

		{
			String codProd = request.getParameter("codProd");
			
			String codCompra = request.getParameter("codCompra");
			String qtd = request.getParameter("qtd");
			String valorProd = request.getParameter("valorCompra");
			String valTotal = request.getParameter("valorTotal");
			String qtdProdutos = request.getParameter("qtdProdutos");
			

			int vTot = Integer.parseInt(valTotal);
			
			int qtdTot = Integer.parseInt(qtdProdutos);
			
			int cProd = Integer.parseInt(codProd);
			int cCompra = Integer.parseInt(codCompra);
			int qtdProd = Integer.parseInt(qtd);
			Double vProd = (Double.parseDouble(valorProd));
			
			vTot += vProd*qtdProd;
			
			qtdTot += qtdProd;
			
			request.setAttribute("qtdProdutos",qtdTot);
			
			request.setAttribute("valorTotal",vTot);
			
			
			compradao.adicionarProdCompra(cProd,cCompra,qtdProd,vProd);
			
			response
			.sendRedirect("compraInserir.jsp?mensagem=Produto Inserido com Sucesso!");
			
		}

		else if (comando.equals("buscar cnpj"))

		{
			
			request.setAttribute("codCompra",compradao.proximoCodCompra());
			
			log.debug("fui no codCompra -- "+compradao.proximoCodCompra());
			
			String nome = request.getParameter("nome");
			ArrayList juridicas = juridicadao.listarJuridicasCompra(nome);
			
//			request.setAttribute("lista_juridica", juridicas);

			Juridica jur = (Juridica)juridicas.get(0);
			
			request.setAttribute("nome",jur.getNome());
			log.debug("nomeJuridica = "+ request.getAttribute("nome"));
			request.setAttribute("cnpj",jur.getCnpj());
			log.debug("CNPJ = "+ request.getAttribute("cnpj"));
			
			String cnpj = request.getParameter("cnpj");
			
			request.setAttribute("cnpj",cnpj);	

			response
					.sendRedirect("compraInserir.jsp?mensagem=achei..");		
		
		}
		

		else if (comando.equals("buscar desc."))

		{
			String codcompra = request.getParameter("codCompra");
			String cnpj = request.getParameter("cnpj");
			String valortotal = request.getParameter("valorTotal");

			Compra c1 = new Compra();
			c1.setCodCompra(Integer.parseInt(codcompra));
			c1.setCnpj(Integer.parseInt(cnpj));
			c1.setValorTotal(Double.parseDouble(valortotal));

			compradao.adicionarCompra(c1);

			response
					.sendRedirect("compraInserir.jsp?mensagem=compra Inserida com Sucesso!");
		}

		
		

		else if (comando.equals("Inserir"))

		{
			String codcompra = request.getParameter("codCompra");
			String cnpj = request.getParameter("cnpj");
			String valorTotal = request.getParameter("valorTotal");
			String qtdProd = request.getParameter("qtdProdutos");
						
			Compra c1 = new Compra();
			c1.setCodCompra(Integer.parseInt(codcompra));
			c1.setCnpj(Integer.parseInt(cnpj));
			c1.setValorTotal(Double.parseDouble(valorTotal));
			c1.setQtdProdutos(Integer.parseInt(qtdProd));
			compradao.adicionarCompra(c1);
						

			response
					.sendRedirect("compraInserir.jsp?mensagem=compra Inserida com Sucesso!");
		}

		
		
		else if (comando.equals("remover")) {
			String idParam = request.getParameter("id");
			int id = Integer.parseInt(idParam);

			compradao.removerCompra(id);

			response
					.sendRedirect("compraRemover.jsp?mensagem=compra Removido com Sucesso!");
		
		} else if (comando.equals("listar")) {
//			ArrayList compras = compradao.listarCompras();
//
//			request.setAttribute("lista_compras", compras);
//
//			RequestDispatcher rd = request
//					.getRequestDispatcher("compraListar.jsp");
//			rd.forward(request, response);
		}
	}
	

}



















